﻿using System;

namespace IupNET
{
  /// <summary>
  /// Modes used for Canvas.Begin
  /// </summary>
  public enum BeginMode
  {
    Fill,
    OpenLines,
    ClosedLines,
    Clip,
    Bezier,
    Region
  }

  public enum LineCap
  {
    Flat,
    Square,
    Round
  }

  public enum MarkType
  {
    Plus,
    Star,
    Circle,
    X,
    Box,
    Diamond,
    HollowCircle,
    HollowBox,
    HollowDiamond
  }

  public enum LineJoin
  {
    Miter,
    Bevel,
    Round
  }

  public enum LineStyle
  {
    Continuous,
    Dashed,
    Dotted,
    DashDot,
    DashDotDot,
    Custom
  }

  public enum BackOpacity
  {
    Opaque,
    Transparent
  }

  public enum InteriorStyle
  {
    Solid,
    Hatch,
    Stipple,
    Pattern,
    Hollow
  }

  public enum FillMode
  {
    EvenOdd,
    Winding
  }

  public enum Hatch
  {
    Horizontal,
    Vertical,
    FDiagonal,
    BDiagonal,
    Cross,
    DiagCross
  }

  public enum TextAlignment
  {
    North,
    South,
    East,
    West,
    NorthEast,
    NorthWest,
    SouthEast,
    SouthWest,
    Center,
    BaseLeft,
    BaseCenter,
    BaseRight
  }

  public enum FontStyle
  {
    Plain = 0,
    Bold = 1,
    Italic = 2,
    Underline = 4,
    Strikeout = 8
  }


  public enum WriteMode
  {
    Replace,
    XOr,
    NotXOr
  }

  [FlagsAttribute]
  public enum ContextCaps
  {
    None = 0x00000000,
    Flush = 0x00000001,
    Clear = 0x00000002,
    Play = 0x00000004,
    YAxis = 0x00000008,
    ClipArea = 0x00000010,
    ClipPoly = 0x00000020,
    Region = 0x00000040,
    Rect = 0x00000080,
    Chord = 0x00000100,
    ImageRGB = 0x00000200,
    ImageRGBA = 0x00000400,
    ImageMap = 0x00000800,
    GetImageRGB = 0x00001000,
    ImageSRV = 0x00002000,
    Background = 0x00004000,
    BackOpacity = 0x00008000,
    WriteMode = 0x00010000,
    LineStyle = 0x00020000,
    LineWith = 0x00040000,
    FPrimitives = 0x00080000,
    Hatch = 0x00100000,
    Stipple = 0x00200000,
    Pattern = 0x00400000,
    Font = 0x00800000,
    FontDim = 0x01000000,
    TextSize = 0x02000000,
    TextOrientation = 0x04000000,
    Palette = 0x08000000,
    LineCap = 0x10000000,
    LineJoin = 0x20000000,
    All = 0xffffff
  }


  [FlagsAttribute]
  public enum SimualtionFlags
  {
    None=0x0000,
    Line=0x0001,
    Rect=0x0002,
    Box=0x0004,
    Arc=0x0008,
    Sector=0x0010,
    Chord=0x0020,
    Polyline=0x0040,
    Polygon=0x0080,
    Text=0x0100,
    All=0xffff
  }

 
  public enum ClipMode {
    Off,
    Area,
    Polygon,
    Region
  }

  public enum RegionCombineMode
  {
      Union,
      Intersect,
      Difference,
      NotIntersect
  }

  public enum PaletteMode
  {
      Polite,
      Force
  }

  

}
